Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.01.2015, 09:16
Интересующийся
Отправить личное сообщение для erilar Посмотреть профиль Найти все сообщения от erilar
 
Регистрация: 07.01.2015
Сообщений: 11

Оптимизация кода
есть рабочий код:
$(document).ready(function(){
    $('body').on('click','.song', function(){
        var clkid = this.id; 

            $.ajax({ 
                type: "POST",
                url: "/cont/song.php",
                data: "id="+clkid,
                success: function(html){ 
                $("section").html(html);
                history.pushState(null, null, "?option=main&cont=song&id="+clkid);
                },beforeSend: function(){                       
                $("#loader").css("display", "block");
            }
        }).done(function(data){                
            $("#loader").css("display", "none");
            window.scrollTo(0,580);  
            });
        return false; 
    });
});


Хочу его улучшить, т.к. подобных функций в файле несколько. Сделал так, но не работает. Помогите найти ошибку:
var post_url;
var data_id;
var hist_url;
var clkid; 

$(document).ready(function(){    
    $('body').on('click','song', function(){
        post_url = '/cont/song.php';
        data_id  = 'id=';
        hist_url = '?option=main&cont=song&id=';
        clkid    = this.id; 
        post_act(post_url,data_id,hist_url,clkid);
return false;
    });  
});


function post_act(){      
        
    $.ajax({ 
        type: "POST",
        url: post_url,
        data: data_id+clkid,
        success: function(html){ 
        $("section").html(html);
        history.pushState(null, null, hist_url+clkid);
        },beforeSend: function(){                       
        $("#loader").css("display", "block");
        }
    }).done(function(data){                
        $("#loader").css("display", "none");
        window.scrollTo(0,580);  
        });
      
}
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2015, 09:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

function post_act(post_url,data_id,hist_url,clkid){
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2015, 16:27
Интересующийся
Отправить личное сообщение для erilar Посмотреть профиль Найти все сообщения от erilar
 
Регистрация: 07.01.2015
Сообщений: 11

Сделал. Не работает. Просто обновляет страницу...
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2015, 16:42
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

erilar,
Хм, а первый код работает ? Дайте ссылку на пример
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2015, 17:01
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Точки нет:
$('body').on('click','.song', function()
Ответить с цитированием
  #6 (permalink)  
Старый 07.01.2015, 17:17
Интересующийся
Отправить личное сообщение для erilar Посмотреть профиль Найти все сообщения от erilar
 
Регистрация: 07.01.2015
Сообщений: 11

Спасибо Вам огромное! Такая мелочь. Всё заработало.
Может дадите совет, как оптимизировать ещё код лучше?
Ответить с цитированием
  #7 (permalink)  
Старый 07.01.2015, 17:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

erilar,
Честно говоря я не увидел оптимизации
Код - вырос
Четыре переменных стали мусорить в документ, вместо ранее скрытого в теле $(document).ready(function(){
Читабельность кода - снизилась, ибо переменные повторяются вместо одного раза - трижды и их все нужно логически согласовывать меж собой
Ответить с цитированием
  #8 (permalink)  
Старый 07.01.2015, 17:25
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от erilar
Может дадите совет, как оптимизировать ещё код лучше?

$(window).on('click', '.song', function(){
    var id = this.id;
    $('#loader').show();
    $.post('/cont/song.php', {id: id}, function(html) {
        $('section').html(html);
        history.pushState(null, null, '?option=main&cont=song&id=' + id);
        $('#loader').hide();
        window.scrollTo(0,580); 
    });
    return false;
});
Ответить с цитированием
  #9 (permalink)  
Старый 07.01.2015, 17:41
Интересующийся
Отправить личное сообщение для erilar Посмотреть профиль Найти все сообщения от erilar
 
Регистрация: 07.01.2015
Сообщений: 11

Сообщение от Deff Посмотреть сообщение
erilar,
Честно говоря я не увидел оптимизации
Код - вырос
Четыре переменных стали мусорить в документ, вместо ранее скрытого в теле $(document).ready(function(){
Читабельность кода - снизилась, ибо переменные повторяются вместо одного раза - трижды и их все нужно логически согласовывать меж собой
До того код был таким:
$(document).ready(function(){
$('body').on('click','.nav', function(){
var clkid = this.id;
$.ajax({
type: "POST",
url: "/cont/main.php",
data: "crs="+clkid,
success: function(data){ 
$("section").html(data);
history.replaceState(null, null, "?option=main&cont="+clkid);
},beforeSend: function(){                       
$("#loader").css("display", "block");
}
}).done(function(data){                
$("#loader").css("display", "none");
window.scrollTo(0,580);  
});
return false; 
});
});

$(document).ready(function(){
$('body').on('click','.view', function(){
var clkid = this.id; 
$.ajax({ 
type: "POST",
url: "../../cont/view.php",
data: "id_text="+clkid,
success: function(html){ 
$("section").html(html);
history.pushState(null, null, "?option=main&cont=view&id_text="+clkid);
},beforeSend: function(){                       
$("#loader").css("display", "block");
}
}).done(function(data){                
$("#loader").css("display", "none");
window.scrollTo(0,580);  
});
return false; 
});
});

$(document).ready(function(){
$('body').on('click','.g_news', function(){
var clkid = this.id; 
$.ajax({ 
type: "POST",
url: "../../cont/group_news.php",
data: "page="+clkid,
success: function(html){ 
$("section").html(html);
history.pushState(null, null, "?option=main&cont=group_news&page="+clkid);
},beforeSend: function(){                       
$("#loader").css("display", "block");
}
}).done(function(data){                
$("#loader").css("display", "none");
window.scrollTo(0,580);  
});
return false; 
});
});

$(document).ready(function(){
$('body').on('click','.a_news', function(){
var clkid = this.id; 
$.ajax({ 
type: "POST",
url: "../../cont/all_news.php",
data: "page="+clkid,
success: function(html){ 
$("section").html(html);
history.pushState(null, null, "?option=main&cont=all_news&page="+clkid);
},beforeSend: function(){                       
$("#loader").css("display", "block");
}
}).done(function(data){                
$("#loader").css("display", "none");
window.scrollTo(0,580);  
});
return false; 
});
});

$(document).ready(function(){
$('body').on('click','.disk', function(){
var clkid = this.id; 
$.ajax({ 
type: "POST",
url: "/cont/disk.php",
data: "id="+clkid,
success: function(html){ 
$("section").html(html);
history.pushState(null, null, "?option=main&cont=disk&id="+clkid);
},beforeSend: function(){                       
$("#loader").css("display", "block");
}
}).done(function(data){                
$("#loader").css("display", "none");
window.scrollTo(0,580);  
});
return false; 
});
});

$(document).ready(function(){
$('body').on('click','.del_wall', function(){
var clkid = this.id; 
$.ajax({ 
type: "POST",
url: "/cont/profile.php",
data: "id_val="+clkid,
success: function(html){ 
$("section").html(html);
history.pushState(null, null, "?option=main&cont=profile");
},beforeSend: function(){                       
$("#loader").css("display", "block");
}
}).done(function(data){                
$("#loader").css("display", "none");
window.scrollTo(0,580);  
});
return false; 
});
});

$(document).ready(function(){
$('body').on('click','.song', function(){
var clkid = this.id; 
$.ajax({ 
type: "POST",
url: "/cont/song.php",
data: "id="+clkid,
success: function(html){ 
$("section").html(html);
history.pushState(null, null, "?option=main&cont=song&id="+clkid);
},beforeSend: function(){                       
$("#loader").css("display", "block");
}
}).done(function(data){                
$("#loader").css("display", "none");
window.scrollTo(0,580);  
});
return false; 
});
});

Стал таким:
var post_url;
var data_id;
var hist_url;
var clkid;
function post_act(post_url,data_id,hist_url,clkid){//$_POST
    $.ajax({ 
        type: "POST",
        url: post_url,
        data: data_id+clkid,
        success: function(html){ 
        $("section").html(html);
        history.pushState(null, null, hist_url+clkid);
        },beforeSend: function(){                       
        $("#loader").css("display", "block");
        }
    }).done(function(data){                
        $("#loader").css("display", "none");
        window.scrollTo(0,580);  
        });      
}

$(document).ready(function(){//загрузка Главного контента 
    $('body').on('click','.nav', function(){
        post_url = "/cont/main.php";
        data_id  = "crs=";
        hist_url = '?option=main&cont=';
        clkid    = this.id; 
        post_act(post_url,data_id,hist_url,clkid);
        return false; 
    });
});

$(document).ready(function(){//загрузка Полной новости 
    $('body').on('click','.view', function(){
        post_url ="../../cont/view.php";
        data_id  ="id_text=";
        hist_url ="?option=main&cont=view&id_text=";
        clkid    =this.id;
        post_act(post_url,data_id,hist_url,clkid);
        return false; 
    });
});

$(document).ready(function(){//Следующие новости Группы
    $('body').on('click','.g_news', function(){
        post_url ="../../cont/group_news.php";
        data_id  ="page=";
        hist_url ="?option=main&cont=group_news&page=";
        clkid    =this.id;
        post_act(post_url,data_id,hist_url,clkid);
        return false; 
    });
});

$(document).ready(function(){//Следующие Все новости
    $('body').on('click','.a_news', function(){
        post_url ="../../cont/all_news.php";
        data_id  ="page=";
        hist_url ="?option=main&cont=all_news&page=";
        clkid    =this.id;
        post_act(post_url,data_id,hist_url,clkid);
        return false; 
    });
});

$(document).ready(function(){//Загрузка тесков песен
    $('body').on('click','.song', function(){
        post_url = '/cont/song.php';
        data_id  = 'id=';
        hist_url = '?option=main&cont=song&id=';
        clkid    = this.id; 
        post_act(post_url,data_id,hist_url,clkid);
        return false;
    });  
});

$(document).ready(function(){//Дискография    
    $('body').on('click','.disk', function(){
        post_url ="/cont/disk.php";
        data_id  ="id=";
        hist_url ="?option=main&cont=disk&id=";
        clkid    =this.id;
        post_act(post_url,data_id,hist_url,clkid);
        return false; 
    });
});

$(document).ready(function(){//загрузка ФотоАльбома
    $('body').on('click','.gallery', function(){
        post_url ="/cont/gall.php";
        data_id  ="gall=";
        hist_url ="?option=main&cont=gall&gall=";
        clkid    =this.id;
        post_act(post_url,data_id,hist_url,clkid);
        return false; 
    });
});

$(document).ready(function(){//Удаление сообщения со стены
    $('body').on('click','.del_wall', function(){
        post_url ="/cont/profile.php";
        data_id  ="id_val=";
        hist_url ="?option=main&cont=profile";
        clkid    ="";
        post_act(post_url,data_id,hist_url,clkid);
        return false; 
    });
});

Последний раз редактировалось erilar, 07.01.2015 в 17:44.
Ответить с цитированием
  #10 (permalink)  
Старый 07.01.2015, 17:45
Интересующийся
Отправить личное сообщение для erilar Посмотреть профиль Найти все сообщения от erilar
 
Регистрация: 07.01.2015
Сообщений: 11

И загружаться стало даже быстрее.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация и упрощение js кода Kaizoku Общие вопросы Javascript 1 02.12.2013 09:26
Оптимизация кода Nifler jQuery 6 30.09.2013 21:14
Оптимизация кода assd18 Общие вопросы Javascript 4 21.06.2013 15:26
Оптимизация кода (создание горизонтального меню) IONEX jQuery 0 16.01.2012 05:07
Оптимизация кода Prizrak177 Общие вопросы Javascript 0 15.02.2011 16:36